使用Select查出想要的資料後,假如想要使資料排序由小到大或是由大到小,這時候就需要使用Order by這個指令來做排序。
將資料做排序有兩個關鍵字:
使用order by不只是數值的大小做排序,也可以是時間的久遠或英文(a-z)的大小或者文字的筆畫來做排序。
用法:
SELECT "欄位名稱"
FROM "資料表名稱"
[WHERE "條件"]
ORDER BY "欄位名稱" [ASC or DESC];
但假如以欄位名稱1排序後,有三個名稱重複一樣,oder by後可以再用,做區隔後繼續 欄位名稱2 加上 ASC or DESC排序,若排序後還是一樣無發比較高下的話可再第三個 欄位名稱3排序以此類推,但會越前面的排序為優先。
作法如下:
ORDER BY "欄位名稱1" [ASC or DESC],"欄位名稱2" [ASC or DESC],"欄位名稱3" [ASC or DESC],...;
現在要以id來進行遞減的排序並顯示出學生姓名
SELECT 學生
FROM student
ORDER BY id DESC
顯示結果依照id大小,從最大(京帥 id=8)排列到最小(Mark id=1)。結果如下:
那麼現在要以學生姓名來進行遞增。
SELECT 學生
FROM student
ORDER BY 學生 ASC
顯示結果先由英文排序到中文,而英文從字母的先後順序開始遞增,中文則是依照筆畫來做遞增。結果如下:
對資料庫新增查詢後,右鍵在編輯器中查詢設計,選擇想要的資料表(作法與前幾篇SQL小精靈一樣),在排序類型那兒的下拉選單就可以對欄位做遞增或遞減了,而SQL就會在下方,確定後就可執行了(也可以對不想顯示的欄位做排序唷><)。
順便提一下,ORDER BY 的條件是可以多個。
例如 ORDER BY RegisterDate DESC, Price ASC, Discount DESC
感謝朱老師的補充說明>< 立刻補上